﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcDemo.Controllers
{
    /// <summary>
    /// 创建的test控制器
    /// 演示视图
    /// </summary>
    public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            return View();
        }

        /// <summary>
        /// 第一种方法
        /// 指定的文件路径视图
        /// '~'表示当前的操作根目录，文件的路径要完整，视图文件的后缀名不能忘
        /// </summary>
        /// <returns></returns>
        public ActionResult one()
        {
            // ViewBag.Message视图的可操作数据 ，在视图的文件也要有相同的
            ViewBag.Message = "关于一个界面";
            return View("~/Views/Home/About.cshtml");
        }

        /// <summary>
        /// 第二种方法
        /// 使用的是默认的有自己同名的视图
        /// </summary>
        /// <returns></returns>
        public ActionResult two()
        {
            ViewBag.Message = "谢汶霖啊";
            return View();
        }

        /// <summary>
        /// 2.2默认视图
        /// 视图文件有设置操作对象的数据是，在控制器中再设置也无法替代视图的数据，会优先使用视图中设置的同名数据对象
        /// </summary>
        /// <returns></returns>
        public ActionResult three()
        {
            ViewBag.title = "小朋友";
            ViewBag.three = "你是不是有很多的问号？？？";
            return View();
        }

        /// <summary>
        /// 3.1第三种方法
        /// 使用的是默认文件夹内的其它视图
        /// </summary>
        /// <returns></returns>
        public ActionResult fort(string id)
        {
            var name = "";
            if (id == null)
            {
                 name = "(默认值)谢汶霖:";
            }
            else
            {
                name = string.Format("{0}的笔记：", id);
            }
            
            ViewBag.three = name + "这是用别的视图，来显示自己想要的东西，可能是用到的视图摸板是一样的，不想重新再写一个。";
            return View("three");
        }

        public ActionResult five()
        {
            List<Student> studentList = new List<Student>();
            for(int i = 0; i < 5; i++)
            {
                var stu = new Student { Name = string.Format("学生{0}", i) ,Age=100};
                studentList.Add(stu);    
            }
            ViewBag.List = studentList;
            return View("five");
        }
    }

    public class Student { 
        public string Name { set; get; }
        public int Age { set; get; }
    }

}